Thiago Macieira [Wed, 12 Feb 2014 00:17:46 +0000 (16:17 -0800)]
Redo the Q_FOREACH loop control without GCC statement expressions
It's possible to do without them, which probably makes the number of
supported compilers a lot bigger: they just need to support decltype()
or __typeof__.
That includes the Intel compiler. The old code was also apparently
working, but no one had realized the old workaround for some old version
was still in place.
The loop overhead is more or less the same. I have not done benchmarks,
but inspection of the generated assembly shows more or less the same
number of instructions.
Change-Id: I32d499c84a6ddd19d994b49f17a469acb5c3a3f1 Reviewed-by: Olivier Goffart <ogoffart@woboq.com> Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Backported to Qt 4
Currently, the generated documentation includes a search box which relies on an
external search service, and which does not work for local usage. Therefore, the
generated search box does not work and confuses users, so it is best to build
the documentation in offline format which does not include the search box, but
does also not confuse users.
workaround FTBFS on powerpc/gcc 4.6 in signalsloteditor
This should workaround g++-4.6/powerpc ICE that is related to dwarf2 [1][2].
It is very likely the patch will not be needed long term as the gcc bug might
eventually be fixed.
[1] .moc/release-shared/qteditorfactory.moc:237:1: internal compiler error: in size_of_die, at dwarf2out.c:10749
Please submit a full bug report,
with preprocessed source if appropriate.
Fix monotonic clock detection on kFreeBSD at configure time. This will finally
enable it in QElapsedTimer.
QProcess::waitForFinished() and all other qt_safe_select() users cannot safely
operate without monotonic clock because qt_safe_select() will indicate timeout
earlier than it is supposed when underlying select() call is interrupted
(errno=EINTR).
~1/1000 when run in a row. Hopefully, this will make failures rare enough
not to cause FTBFSes.
Degradation in performance should not be very significant and is acceptable.
Author: Modestas Vainius <modax@debian.org>
Author: Fathi Boudra <fabo@debian.org>
Forwarded: not-needed
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=561203
Origin: vendor
Last-Update: 2011-12-26
Gbp-Pq: Name 99_hppa_bug561203_decrease_failure_rate.diff
Restore QtCore ABI compatibility with binaries built with g++ 4.3 on armel Once Qt is rebuilt with g++ 4.4, it becomes ABI incompatible with binaries built with g++ 4.3 on armel. That's because g++ 4.4 mangles va_list differently on armel. As a result, affected symbols are those which have va_list type in their argument list. Qt exports 2 such symbols: . qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); QString &QString::vsprintf(const char* cformat, va_list ap); . The patch uses .symver assembler directive to add aliases for the symbols above. Those aliases are mangled in the same way as g++ 4.3 would mangle original symbols.
Permit loading plugins built with future major Qt releases (4.x)
This check is too paranoid for us because it prevents from using symbol files
in full potential. Fine-grained package level dependencies should ensure that
the required version of the Qt Library is installed which might not necessarily
be the latest Qt 4.x the plugin was built against because the plugin actually
did not use any of new symbols in the Qt Library.
However, removal of this check might still increase likelihood of crashes when:
1) loading a new incompatible version of plugin into a running process still
using an old Qt Library. This might happen right after upgrade;
2) user tries to load incompatible non-packaged plugin;
but it's an acceptable compromise. Here we trade more bullet proof protection
from rare user faults or weird system misconfigurations for more flexibility,
installability and expand of forward binary compatibility beyond the same Qt
4.x whenever possible.
Gbp-Pq: Name 23_permit_plugins_built_with_future_qt.diff
set sane timestamps when generating header symlinks for non-existing headers
This is particularly important for QtCore/QtConfig symlink because typically
qconfig.h does not exist when syncqt is run by ./configure. So instead of
assigning a modification timestamp equal to the epoch (00:00 January 1, 1970
GMT.) for the symlink, just use current time().
Gbp-Pq: Name 02_syncqt_sane_timestamp_for_nonexisting_headers.diff
Robert Knight [Sun, 20 Apr 2008 14:28:31 +0000 (16:28 +0200)]
When tabs are inserted or removed in a QTabBar, QTabBarPrivate::refresh() is called to update the layout. If the tabbar widget is hidden, this just sets a boolean variable (layoutDirty) and returns, so the parent widget's layout is not notified about the possible geometry change.
Prior to Qt 4.4 this was not a problem because the geometry was
recalculated in QTabBar::sizeHint() if the layoutDirty variable was
set. In Qt 4.4 however the layout caches size hint information in
QWidgetItemV2. Since the cache information is not invalidated, the
layout may end up using out-of-date size hint information to compute
the widget size.
If the QTabBar is empty when QTabBar::sizeHint() is called, it will
return a size with a height of 0, which will be kept in the cache and
so the tab bar will never be shown.
This patch fixes the problem by calling updateGeometry() whenever the
tab bar's layout is refreshed.
qt-bugs@ issue : 208185
Trolltech task ID : 208349
bugs.kde.org number : 159014
Gbp-Pq: Name 0225-invalidate-tabbar-geometry-on-refresh.patch
Lubos Lunak [Tue, 2 Oct 2007 14:08:32 +0000 (16:08 +0200)]
This patch makes override-redirect windows (popup menu, dropdown menu, tooltip, combobox, etc.) also have more window properties like WM_CLASS, so they can be used when compositing.
Fix crash in qppmhandler for certain malformed image files
The ppm format specifies that the maximum color value field must be
less than 65536. The handler did not enforce this, leading to
potentional overflow when the value was used in 16 bits context.
Task-number: QTBUG-69449
Change-Id: Iea7a7e0f8953ec1ea8571e215687d12a9d77e11c Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Gbp-Pq: Name CVE-2018-19872.patch
The value of 'tos' at the check might already be on the last element,
so triggering stack expansion on the second last element is too late.
Change-Id: Ib3ab2662d4d27a71effe9e988b9e172923af2908 Reviewed-by: Richard J. Moore <rich@kde.org> Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Gbp-Pq: Name CVE-2018-15518.patch
This patch is known to not be the most correct way
to implement them, as it seems to be possible to do it in a faster way,
but should work non the less until we can provide something better.
Specifically when reading files with broken cmap tables, we could
get some undeterministic results. We handle this more gracefully
by verifying that the offsets are sane and bailing out early if not.
This replaces the current pattern throughout the font engine for
consistency.
Lars Knoll [Thu, 24 Apr 2014 13:33:27 +0000 (15:33 +0200)]
Don't crash on broken GIF images
Broken GIF images could set invalid width and height
values inside the image, leading to Qt creating a null
QImage for it. In that case we need to abort decoding
the image and return an error.
Initial patch by Rich Moore.
Backport of Id82a4036f478bd6e49c402d6598f57e7e5bb5e1e from Qt 5
Owen W. Taylor [Mon, 17 Oct 2011 21:27:43 +0000 (17:27 -0400)]
Fix logic for figuring out what ConfigureNotify positions can be trusted
When reading ahead in the queue for ConfigureNotify events, it's necessary
to look for intermediate ReparentNotify events as well, since they will
determine whether the position in the event can be trusted or not.
from QT_USE_DRAG_DISTANCE environment variable.
See also http://bugreports.qt.nokia.com/browse/QTBUG-12594
Author: Joonas Tanskanen <joonas.tanskanen@sasken.com>
Gbp-Pq: Name Add_support_for_QT_USE_DRAG_DISTANCE_env_var.patch
* Team upload.
* Fix FTBS with GCC 9. (Closes: #925811)
- Add gcc9-qforeach.patch to backport Q_FOREACH changes from Qt 5
- Update qt-everywhere-opensource-src-4.8.7-gcc6.patch to add GCC 9 to
the compiler checks
I'm not sure what exactly has triggered the need for this (different flags,
different compiler, different paths through the ifdefs, but the easiest
soloution is just to fix it.
Author: Peter Michael Green <plugwash@raspbian.org>
Currently, the generated documentation includes a search box which relies on an
external search service, and which does not work for local usage. Therefore, the
generated search box does not work and confuses users, so it is best to build
the documentation in offline format which does not include the search box, but
does also not confuse users.
workaround FTBFS on powerpc/gcc 4.6 in signalsloteditor
This should workaround g++-4.6/powerpc ICE that is related to dwarf2 [1][2].
It is very likely the patch will not be needed long term as the gcc bug might
eventually be fixed.
[1] .moc/release-shared/qteditorfactory.moc:237:1: internal compiler error: in size_of_die, at dwarf2out.c:10749
Please submit a full bug report,
with preprocessed source if appropriate.
Fix monotonic clock detection on kFreeBSD at configure time. This will finally
enable it in QElapsedTimer.
QProcess::waitForFinished() and all other qt_safe_select() users cannot safely
operate without monotonic clock because qt_safe_select() will indicate timeout
earlier than it is supposed when underlying select() call is interrupted
(errno=EINTR).
~1/1000 when run in a row. Hopefully, this will make failures rare enough
not to cause FTBFSes.
Degradation in performance should not be very significant and is acceptable.
Author: Modestas Vainius <modax@debian.org>
Author: Fathi Boudra <fabo@debian.org>
Forwarded: not-needed
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=561203
Origin: vendor
Last-Update: 2011-12-26
Gbp-Pq: Name 99_hppa_bug561203_decrease_failure_rate.diff
Restore QtCore ABI compatibility with binaries built with g++ 4.3 on armel Once Qt is rebuilt with g++ 4.4, it becomes ABI incompatible with binaries built with g++ 4.3 on armel. That's because g++ 4.4 mangles va_list differently on armel. As a result, affected symbols are those which have va_list type in their argument list. Qt exports 2 such symbols: . qvsnprintf(char *str, size_t n, const char *fmt, va_list ap); QString &QString::vsprintf(const char* cformat, va_list ap); . The patch uses .symver assembler directive to add aliases for the symbols above. Those aliases are mangled in the same way as g++ 4.3 would mangle original symbols.